class GMAnimVideoModel {
  int? status;
  String? msg;
  List<GMAnimData>? data;

  GMAnimVideoModel({this.status, this.msg, this.data});

  GMAnimVideoModel.fromJson(Map<String, dynamic> json) {
    status = json['status'];
    msg = json['msg'];
    if (json['data'] != null) {
      data = <GMAnimData>[];
      json['data'].forEach((v) {
        data!.add(GMAnimData.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['status'] = this.status;
    data['msg'] = this.msg;
    if (this.data != null) {
      data['data'] = this.data!.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class GMAnimData {
  String? id;
  String? userId;
  String? title;
  String? text;
  String? tag;
  String? releaseTime;
  String? commentTime;
  String? time;
  String? url;
  String? fileType;
  String? fileJson;
  String? collect;
  int? praise;
  double? look;
  int? reply;
  bool? hidden;
  bool? secret;
  String? dealState;
  String? link;
  GMAnimUser? user;
  String? kingdoms;
  String? archives;
  List<GMAnimFiles>? files;
  String? spus;

  GMAnimData(
      {this.id,
      this.userId,
      this.title,
      this.text,
      this.tag,
      this.releaseTime,
      this.commentTime,
      this.time,
      this.url,
      this.fileType,
      this.fileJson,
      this.collect,
      this.praise,
      this.look,
      this.reply,
      this.hidden,
      this.secret,
      this.dealState,
      this.link,
      this.user,
      this.kingdoms,
      this.archives,
      this.files,
      this.spus});

  GMAnimData.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    userId = json['userId'];
    title = json['title'];
    text = json['text'];
    tag = json['tag'];
    releaseTime = json['releaseTime'];
    commentTime = json['commentTime'];
    time = json['time'];
    url = json['url'];
    fileType = json['fileType'];
    fileJson = json['fileJson'];
    collect = json['collect'];
    praise = json['praise'];
    look = json['look'];
    reply = json['reply'];
    hidden = json['hidden'];
    secret = json['secret'];
    dealState = json['dealState'];
    link = json['link'];
    user = json['user'] != null ? new GMAnimUser.fromJson(json['user']) : null;
    kingdoms = json['kingdoms'];
    archives = json['archives'];
    if (json['files'] != null) {
      files = <GMAnimFiles>[];
      json['files'].forEach((v) {
        files!.add(new GMAnimFiles.fromJson(v));
      });
    }
    spus = json['spus'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['userId'] = this.userId;
    data['title'] = this.title;
    data['text'] = this.text;
    data['tag'] = this.tag;
    data['releaseTime'] = this.releaseTime;
    data['commentTime'] = this.commentTime;
    data['time'] = this.time;
    data['url'] = this.url;
    data['fileType'] = this.fileType;
    data['fileJson'] = this.fileJson;
    data['collect'] = this.collect;
    data['praise'] = this.praise;
    data['look'] = this.look;
    data['reply'] = this.reply;
    data['hidden'] = this.hidden;
    data['secret'] = this.secret;
    data['dealState'] = this.dealState;
    data['link'] = this.link;
    if (this.user != null) {
      data['user'] = this.user!.toJson();
    }
    data['kingdoms'] = this.kingdoms;
    data['archives'] = this.archives;
    if (this.files != null) {
      data['files'] = this.files!.map((v) => v.toJson()).toList();
    }
    data['spus'] = this.spus;
    return data;
  }
}

class GMAnimUser {
  String? id;
  String? name;
  String? head;
  String? label;
  String? reason;
  String? tagline;
  String? tally;

  GMAnimUser(
      {this.id,
      this.name,
      this.head,
      this.label,
      this.reason,
      this.tagline,
      this.tally});

  GMAnimUser.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    name = json['name'];
    head = json['head'];
    label = json['label'];
    reason = json['reason'];
    tagline = json['tagline'];
    tally = json['tally'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['name'] = this.name;
    data['head'] = this.head;
    data['label'] = this.label;
    data['reason'] = this.reason;
    data['tagline'] = this.tagline;
    data['tally'] = this.tally;
    return data;
  }
}

class GMAnimFiles {
  String? url;
  int? rank;
  String? type;
  String? width;
  String? height;
  String? status;

  GMAnimFiles({this.url, this.rank, this.type, this.width, this.height, this.status});

  GMAnimFiles.fromJson(Map<String, dynamic> json) {
    url = json['url'];
    rank = json['rank'];
    type = json['type'];
    width = json['width'];
    height = json['height'];
    status = json['status'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['url'] = this.url;
    data['rank'] = this.rank;
    data['type'] = this.type;
    data['width'] = this.width;
    data['height'] = this.height;
    data['status'] = this.status;
    return data;
  }
}
